﻿using GC_RF.BusinessEntities.DTOs;

namespace GC_RF.Domain.Abstractions.Interfaces.Services
{
	public interface IUserService
	{
		bool IsUserNameExists(string data);

		bool IsEmailExists(string data);

		void Create(UserData data);

		UserData GetUserByName(string data);

		UserData GetUserById(int id);

		UserData GetNewUser(string name, string email, string pass);

		bool IsValidPassword(string password, string salt, string hash);

		bool ChangePassword(int userId, string currentPass, string newPass);

		void SetUserPassword(int userId, string password);

		string GetResetPasswordToken(string email, int resetPaswordTokenLifitimeMinutes);

		bool VerifyResetPasswordToken(string resetToken);

		void ResetPassword(string resetToken, string newPassword);
	}
}
